package cn.stazxr.component;

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.util.Optional;

/**
 * Package: cn.stazxr.component
 *
 * @Author: stazxr
 * @Create: 2023/12/11
 * @Version: v1.0
 **/
public class JTreeTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame("我是文件树");
        frame.setLayout(null);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setBounds(500, 300, 500, 300);

        //这里我们让JTree展示.idea目录下所有文件
        File file = new File(".\\");   //这里我们列出.idea目录下所有文件
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(file.getName()); //既然是树形关系，肯定有一个根结点
//拿到当前目录下所有文件和文件夹
        File[] files = Optional.ofNullable(file.listFiles()).orElseGet(() -> new File[0]);
        for (File f : files)
            root.add(new DefaultMutableTreeNode(f.getName()));    //构造子结点并连接

        JTree tree = new JTree(root);    //设定默认的根结点
        tree.setBounds(0, 0, 200, 300);
        frame.add(tree);

        frame.setVisible(true);
    }
}
